package main
import "fmt"
// 指针方法和值方法 都可以在指针或非指针上被调用

type List []int
func (l List) Len() int {return len(l)}
func (l *List) Append(val int)}{*l = append(*l, val)}
func main(){
  // value
  val lst List
  lst.Append(1)
  fmt.Printf("%v (len: %d)\n", lst, lst.Len())

  // pointer
  plst	:= new(List)
  plst.Append(2)
  fmt.Printf("%v (len: %d)\n", plst, plst.Len())
}
